package merisis.impl;

import merisis.MerisisVM;
import merisis.contentcloud.ContentCloud;
import merisis.contentcloud.impl.ContentCloudImpl;
import merisis.sense.SenseMaker;
import merisis.sense.impl.SenseMakerImpl;
import merisis.traitspace.History;
import merisis.traitspace.impl.MemoryHistoryImpl;
import merisis.traitspace.impl.TraitSpaceImpl;

import com.google.inject.AbstractModule;
import com.google.inject.Scopes;

public class DefaultMerisisModule extends AbstractModule {

	public void configure() {

		bind(History.class).to(MemoryHistoryImpl.class).in(Scopes.SINGLETON);
		
		bind(ContentCloud.class).to(ContentCloudImpl.class)
				.in(Scopes.SINGLETON);
		bind(MerisisVM.class).to(TraitSpaceImpl.class).in(Scopes.SINGLETON);
		bind(SenseMaker.class).to(SenseMakerImpl.class).in(Scopes.SINGLETON);

		bind(TraitHeap.class).in(Scopes.SINGLETON);
		bind(Hippocampus.class).in(Scopes.SINGLETON);
		bind(Siloyard.class).in(Scopes.SINGLETON);

	}
}
